package com.tjetc;

import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import scala.Tuple2;

import java.util.Arrays;

public class SparkWordCount {
    public static void main(String[] args) {
        // 创建JavaSparkContext
        JavaSparkContext jsc = new JavaSparkContext("local", "SparkWordCount");

        // 读取文件，文件路径由命令行参数传入
        JavaRDD<String> textFile = jsc.textFile(args[0]);//请在此处填写代码

        // 将每一行文本按照空格进行切分，并生成单词列表
        JavaRDD<String> words = textFile.flatMap(line -> Arrays.asList(line.split(" ")).iterator());//请在此处填写代码

        // 将每个单词映射成(word, 1)形式的二元组
        JavaPairRDD<String, Long> wordsAndOne = words.mapToPair(word -> new Tuple2<>(word, 1L));

        // 对相同键的值进行求和
        JavaPairRDD<String, Long> result = wordsAndOne.reduceByKey((x, y) -> (x + y));//请在此处填写代码

        result.saveAsTextFile(args[1]);//请在此处填写代码
    }
}